package Bi_Tree.level_traversal;

import Bi_Tree.TreeNode;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

/*
* 给定一个二叉树的 根节点 root，想象自己站在它的右侧，按照从顶部到底部的顺序，返回从右侧所能看到的节点值。
* */
public class lc199 {
    public static void main(String[] args) {

    }

    public List<Integer> rightSideView(TreeNode root){
        Queue<TreeNode> queue=new LinkedList<>();
        List<List<Integer>> result =new ArrayList<>();
        List<Integer> list=new ArrayList<>();
        if(root==null){
            return list;
        }
        TreeNode node=root;
        queue.offer(node);
        while(!queue.isEmpty()){
            List<Integer> smalllist=new ArrayList<>();
            int len=queue.size();
            int a=len;
            while(len>0){
                node= queue.poll();
                smalllist.add(node.val);
                if(node.left!=null) queue.offer(node.left);
                if(node.right!=null) queue.offer(node.right);
                len--;
            }
            result.add(smalllist);
            list.add(smalllist.get(a-1));
        }
        return list;
    }


}
